package com.snowj.apaas.service;

import com.snowj.apaas.domain.auto.Trademark;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.Date;
import java.util.Optional;

/**
 * 商标服务
 */
public interface TrademarkService {

    /**
     * 统计一年内即将到期的商标
     * @return
     */
    long countBecomeDueTrademark();

    /**
     * 查询包括：
     * 业务员，日期（大于小于），合同编号，客户名称，商标名称，商标类别，商标号
     * @return
     */
    Page<Trademark> listTrademarks(String salesman, String startDate, String endDate, String contractNumber,
                                   String clientName, String trademarkName, String trademarkType,
                                   String trademarkNumber, Pageable pageable);

    /**
     * 根据编号查询商标
     * @param id 商标编号
     * @return
     */
    Optional<Trademark> findTrademark(Long id);

    /**
     * 创建商标
     * @param trademark
     * @return
     */
    Trademark createTrademark(Trademark trademark);

    /**
     * 更新商标
     * @param trademark
     * @return
     */
    Trademark updateTrademark(Trademark trademark);

    /**
     * 删除商标
     * @param id 商标编号
     */
    void deleteTradeMark(Long id);

}
